<?php

class Application_Model_DbTable_Materiales extends Zend_Db_Table_Abstract
{

    protected $_name = 'materiales';
    
    public function obtenerTodo() {
        //hago que solo devuelva la columna nombre_real
        $select = $this->select();
        $select->from($this, array('id','nombre','descripcion','path','cant_descargas','clave'));
        return $this->fetchAll($select);
    }
    
    public function existe_material ($nombre) {
        $select = $this->select();
        $select->where('nombre = ?', $nombre);
        $row = $this->fetchRow($select);
        if ($row){
            return true;
        } else {
            return false;
        }
    }    
    
    public function cargarMaterial ($nombre,$descripcion,$path,$creador,$clave) {
        $this->insert(array(
            "nombre" => $nombre, 
            "descripcion" => $descripcion, 
            "path" => $path, 
            "creador" => $creador, 
            "fecha_crea" => date("Y-m-d H:i:s"),
            "clave" => $clave)
        );
    }
    
    public function borrarMaterial ($nombre) {
        $upload = Zend_Registry::get('upload_paths');
        $pathname = $upload->paths->upload->files->materiales;
        unlink($pathname . "/" . $nombre); 
        $this->delete(array('nombre = ?' => $nombre));
    }
    
    public function contarDescargas ($nombre) {
        $select = $this->select();
        $select->where('nombre = ?', $nombre);
        $mat = $this->fetchRow($select);  
        $data = array(
          'cant_descargas' => $mat->cant_descargas + 1,  
        );
        $this->update($data, array('nombre = ?' => $nombre));
    }   
    
    public function editarMaterial ($nombre,$descripcion,$creador,$clave) {
        $data = array(
                    "descripcion" => $descripcion, 
                    "creador" => $creador,
                    "clave" => $clave
            );
        $this->update($data, array('nombre = ?' => $nombre));
    }
    
    public function obtener_material ($nombre) {
        $select = $this->select();
        $select->where('nombre = ?', $nombre);
        $row = $this->fetchRow($select);
        return $row;
    } 


}

